// 组件: zj-more 更多功能
// ==================== 参数 ====================
// ※ xxxxx ==> xxxxx
// ==================== 事件 ====================
// ※ bind:xxxxx="xxxxx(e)" ==> xxxxx
// ==================== 插槽 slot ====================
// ※ 默认插槽 ==> xxxxx
// ==================== 方法 ====================
// ※ open(x, y) ==> 打开
// ※ close() ==> 关闭

Component({
  properties: {},
  data: {
    show: false, // 是否显示
    style: '', // 样式
    animation: false // 动效
  },
  methods: {
    // ========== 打开 ==========
    open (x, y) {
      const top = y
      const left = x
      const el = wx.getSystemInfoSync()
      const H_half = el.windowHeight / 2
      const W_half = el.windowWidth / 2
      const bottom = el.windowHeight - top
      const right = el.windowWidth - left
      let style = ''
      if (top < H_half && left < W_half) { // 第一象限 未测试
        style = `transform-origin: top left; top: ${top}px; left: ${left}px;`
      } else if (top < H_half && left >= W_half) { // 第二象限
        style = `transform-origin: top right; top: ${top}px; right: ${right}px;`
      } else if (top >= H_half && left < W_half) { // 第三象限 未测试
        style = `transform-origin: bottom left; top: auto; bottom: ${bottom}px; left: ${left}px;`
      } else if (top >= H_half && left >= W_half) { // 第四象限
        style = `transform-origin: bottom right; top: auto; bottom: ${bottom}px; right: ${right}px;`
      }
      this.setData({ show: true, style })
      wx.nextTick(() => { this.setData({ animation: true }) })
    },
    // ========== 关闭 ==========
    close () {
      this.setData({ animation: false })
      setTimeout(() => { this.setData({ show: false, style: '' }) }, 300)
    }
  }
})
